1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| const data = [ "办公设备、附件和用品>>办公用品>>书写工具>>毛笔", "造纸原料和纸制品>>纸制品>>个人纸制品>>餐巾纸和餐巾", "造纸原料和纸制品>>纸制品>>个人纸制品>>丝巾", "办公设备、附件和用品>>办公用品>>测试分类>>苹果", "其它", "办公设备、附件和用品>>办公用品>>测试分类>>荔枝", "办公设备、附件和用品>>家具用品>>床头用品>>枕头", "食品、饮料和烟草>>肉和家禽产品>>加工和处理过的肉>>鲜的加工和处理过的肉", "食品、饮料和烟草>>巧克力、糖、甜品和糖果>>糖果>>口香糖", "食品、饮料和烟草>>饮料>>咖啡和茶>>咖啡饮料", "食品、饮料和烟草>>饮料>>非酒精饮料>>泉水和矿泉水", "办公设备、附件和用品>>办公用品>>书写工具>>水笔", "造纸原料和纸制品>>纸制品>>个人纸制品>>纸巾", "食品、饮料和烟草>>巧克力、糖、甜品和糖果>>巧克力、糖和甜品>>巧克力和巧克力代用品", "食品、饮料和烟草>>饮料>>非酒精饮料>>水", "食品、饮料和烟草>>乳制品和蛋>>牛奶和黄油产品>>贮藏的牛奶和黄油产品", "食品、饮料和烟草>>预制食品和罐头>>方便什锦和用品>>方便什锦小吃", "食品、饮料和烟草>>饮料>>咖啡和茶>>袋茶", "食品、饮料和烟草>>面包和烘焙食品>>蛋糕、派和糕点>>新鲜蛋糕、派和糕点", "休闲零食", "食品、饮料和烟草>>饮料>>咖啡和茶>>非乳场生产的乳品饮料", "服装、箱包、个人护理用品>>个人护理用品>>洗浴、身体护理品>>化妆品", "食品、饮料和烟草>>饮料>>非酒精饮料>>软饮料", "食品、饮料和烟草>>肉和家禽产品>>加工和处理过的肉>>贮藏加工和处理过的肉", "食品、饮料和烟草>>谷类和豆类制品>>豆类>>豆粉", "食品、饮料和烟草>>预制食品和罐头>>小吃>>坚果和水果干" ]
const treeArr = [] const analysisData = (data) => { data.forEach(ele => { const eleArr = ele.split('>>') judgeData(treeArr, eleArr, 0) }) } const judgeData = (treeArr, eleArr, step) => { if (!treeArr.some(item => { if (item.value === eleArr[step]) { return true } })) { const treeSon = { value: eleArr[step], lable: eleArr[step] } treeArr.push(treeSon) if (eleArr[step + 1] !== undefined) { treeSon.children = [] judgeData(treeSon.children, eleArr, step + 1) } } else { treeArr.forEach(ele => { if (ele.value === eleArr[step]) { judgeData(ele.children, eleArr, step + 1) } }) } } analysisData(data) console.log('treeArr: ', JSON.stringify(treeArr))
|